Software Organization¶
Directory Structure¶
The structure of autodiff
’s project directory is as follows.
autodiff/
__init__.py
README.md
forward.py
backward.py
optimize.py
rootfinding.py
plot.py
tests/
README.md
test_forward.py
test_backward.py
test_optimize.py
test_rootfinding.py
test_plot.py
docs/
README.md
milestone1.ipynb
milestone2.ipynb
source/
Background.ipynb
Getting Started.ipynb
Implementation.ipynb
index.rst
Installation.ipynb
Libraries_demo.ipynb
Future Development.ipynb
License.rst
.gitignore
.travis.yml
LICENSE.txt
README.md
requirements.txt
setup.cfg
setup.py
The source codes lies in the directory autodiff
, in which the
__init__.py
is there to make autodiff
a package. The file
forward.py
contains the source code of forward mode
autodifferentiation. The file backward.py
contains the source code
of backward mode autodifferentiation. The file optimize.py
contains
optimization routines built on top of autodifferentiation. The file
rootfinding.py
contains rootfinding routines. The file plot.py
contains utility functions for plotting.
The test suites lies in the directory tests
. The test files are
named to represent the module that they test.
The documents lies in the directory docs
. milestone1.ipynb
is
the history version of document when submitting milestone 1.
milestone2.ipynb
is the history version of document when submitting
milestone 2. document.ipynb
, which is this file itself, is the final
document.
Other files in the rrot directory includes: .gitignore
, which
specifies the files that should not be tracked by git, .travis.yml
,
which is the configuration file for TravisCI, LICENSE.txt
, which is
the license for this package, README.md
, which is the README file
for this package, requirements.txt
, which specifies the dependensies
of this package, setup.cfg
, which is the configuration file for
installing this package, setup.py
, which is the script for
installing this package.
Modules¶
There are now five modules: autodiff.forward
for forward mode
autodifferentiation, backward
for backward mode autodifferentiation,
optimize
for optimization, rootfinding
for rootfinding, and
plot
for plotting.
Test Automation¶
The continuous integration is done by TravisCI
and Coveralls
.